package com.wkbb.basic.service;

import com.github.pagehelper.PageInfo;
import com.wkbb.basic.model.Employee;
import com.wkbb.basic.model.Organization;
import com.wkbb.basic.vo.EmployeeEditInfoVo;
import com.wkbb.common.base.BaseService;
import com.wkbb.common.dto.basic.EmployeeInfoDto;

import java.util.List;
import java.util.Map;

public interface EmployeeService extends BaseService<Employee> {

    EmployeeInfoDto getEmployee(Map<String, Object> params);

    EmployeeInfoDto getEmployeeInfo(Long orgId, Long userId);

    PageInfo<EmployeeInfoDto> getEmployeePageList(Map<String, Object> params, final Integer pageNo, final Integer pageSize);

    List<EmployeeInfoDto> getEmployeeList(Map<String, Object> params);

    Long insertEmployee(EmployeeInfoDto employeeInfoDto, String createBy);

    void updateEmployee(EmployeeInfoDto employeeInfoDto,String updateBy,boolean isBack,boolean updateAccount) throws Exception;

    EmployeeEditInfoVo getEmployeeInfoById(Long id);

    List<Map<String, Object>> getTeacherCountStatByOrgId(Long id);

    List<Map<String, Object>> getTearcherCountStatByOrgList(List<Organization> organizationList);

    Employee fillPosition(Employee employee);

    Employee insertEmployee(EmployeeInfoDto employeeInfoDto, Long userId, String createBy);
}
